package <%= servicePackageName %>;

import <%= repositoryPackageName %>.<%= camelCaseName(tableName,true) %>Repository;
import <%= MapperPackageName %>.<%= camelCaseName(tableName,true) %>Mapper;
import <%= domainPackageName %>.<%= camelCaseName(tableName,true) %>;
import <%= utilsPackageName %>.CamelMap;
import <%= utilsPackageName %>.PageJpa;
import <%= utilsPackageName %>.PageMybatis;
import <%= utilsPackageName %>.PageMybatisIns;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Map;

/**
 * <%= camelCaseName(tableName,true) %> <%=tableComment %>  Service
 *
 * @author zhangQ
 * @date 2018/5/6
 */
public interface <%= camelCaseName(tableName,true) %>Service {

    /**
    * TODO(添加实体)
    *
    * @return Integer
    * @author 代码生成器@zhangQ
    * @date <%= formatTime() %>
    */
    <%= camelCaseName(tableName,true) %> saveEntity(<%= camelCaseName(tableName,true) %> <%= camelCaseName(tableName) %>);

<% if(existsField(table.columns,'state')) { -%>
    /**
    * TODO(修改实体状态)
    *
    * @return Integer
    * @author 代码生成器@zhangQ
    * @date <%= formatTime() %>
    */
    Integer <%=camelCaseName(tableName)%>ModifyState(<%= table.primaryKeys[0].type %> <%= table.primaryKeys[0].name %>, Integer state);
<% } -%>

    /**
    * Jpa分页查询
    *
    * @param page:::jpa分页工具类
    * @return PageJpa<<%= camelCaseName(tableName,true) %>>
    */
    PageJpa<<%= camelCaseName(tableName,true) %>> query<%= camelCaseName(tableName,true) %>ByPage(PageJpa page);

    /**
    * mybatis分页查询
    *
    * @param page:::mybatis分页工具
    * @return PageMybatis
    */
    PageMybatis queryMapByPage(PageMybatis page);

}
